/*//GEN-FIRST:event_botao_conectarActionPerformed
 * Interface.java//GEN-LAST:event_botao_conectarActionPerformed
/**
 *
 * Historico de alteração
 *
 * Data         Autor   Descrição
 * 24/10/2010   Jerry   Criação do cabeçalho.
 *
 */
package Interface;

import Conexao.GerenciaConexao;
import com.sun.java.swing.plaf.windows.WindowsLookAndFeel;
import java.awt.Toolkit;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import Dados.Fila;
import Dados.FilaDouble;
import Dados.GerenciaTabela;
import Dados.MedidasBancoDeDados;
import Dados.Pacote;
import Dados.TueModel;
import Instrumentos.Amperimetro;
import Instrumentos.GerenciaInstrumentos;
import Instrumentos.GraficoVelocidade;
import Instrumentos.InstrumentoPressao;
import java.util.ArrayList;
import javax.swing.ImageIcon;
import railbee.banco.dao.TremZigbeeDao;
import railbee.banco.dto.TremZigbee;
import railbee.banco.exceptions.TremZigbeeDaoException;
import railbee.banco.factory.TremZigbeeDaoFactory;
import railbee.execucao.Execut;
import java.sql.Connection;
import Dados.Enderecos;

/**
 *
 * @author Bruno
 */
public class Interface extends javax.swing.JFrame {

    int numero_trens = 16;
    int numero_estacoes = 0;
    int numero_estacoes_aux = 0;
    int iterador = 0;
    boolean cancela_ips_portas = false;
    String[] ips;
    String[] enderecos;
    int[] portas;
    GerenciaConexao conexoes = null;
    Fila fila_tabela = null;
    Fila fila_instrumentos = null;
    Fila fila_bd = null;
    FilaDouble fila_grafico = null;
    FilaDouble fila_amperimetro = null;
    FilaDouble fila_pressao = null;
    GerenciaTabela tabela = null;
    TueModel modelo_tabela = null;
    ArrayList<Pacote> dados = null;
    GraficoVelocidade grafico_velocidade;
    InstrumentoPressao instrumento_pressao;
    MedidasBancoDeDados medidas_banco;
    GerenciaInstrumentos gerente_instrumentos;
    Amperimetro amperimetro;
    Execut conect;
    Connection conexao;
    Enderecos lista_enderecos;


    /** Creates new form Interface */
    public Interface() {
        initComponents();
        this.setLocationRelativeTo(null);
        this.setIconImage(Toolkit.getDefaultToolkit().getImage("src/Imagens/logo_railbee_p3.png"));
        todosOsPaineisFalse();
        setJanelas();
        iniciaVariaveis();
        setEnderecos();
        setInstrumentos();
        conectaBancoDeDados();
    }

    public void conectaBancoDeDados() {
        conect = new Execut() {};
        try {
            conexao = conect.abrirConexao();
        } catch (SQLException ex) {
            Logger.getLogger(Interface.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public void iniciaVariaveis() {
        fila_tabela = new Fila();
        fila_instrumentos = new Fila();
        fila_bd = new Fila();
        fila_grafico = new FilaDouble();
        fila_amperimetro = new FilaDouble();
        fila_pressao = new FilaDouble();
        dados = new ArrayList();
        enderecos = new String[numero_trens];
        grafico_velocidade = new GraficoVelocidade("Velocidade");
        instrumento_pressao = new InstrumentoPressao("Pressão");
        amperimetro = new Amperimetro("Corrente de Armadura");
    }

    public void setInstrumentos() {
        painel_janela_instrumentos_grafico_velocidade.add(grafico_velocidade.getComponent(0));
        painel_janela_instrumentos_instrumento.add(instrumento_pressao.getComponent(0));
        painel_janela_instrumentos_corrente.add(amperimetro.getComponent(0));
    }

    public void setEnderecos() {
        

        lista_enderecos = new Enderecos(numero_trens);

        for(int i = 0; i < lista_enderecos.getEnderecos().length; i++) {
            dados.add(new Pacote());
            dados.get(i).setEndereco(lista_enderecos.getEndereco(i));
        }
    }

    public void setJanelas() {
        janela_ip_porta.setModal(true);
        janela_ip_porta.pack();
        janela_ip_porta.setLocationRelativeTo(null);
        janela_ip_porta.setIconImage(Toolkit.getDefaultToolkit().getImage("src/Imagens/logo_railbee_p3.png"));
        janela_ip_porta.getRootPane().setDefaultButton(botao_janela_ip_porta_ok);
        
        janela_instrumentos.setModal(true);
        janela_instrumentos.pack();
        janela_instrumentos.setLocationRelativeTo(null);
        janela_instrumentos.setIconImage(Toolkit.getDefaultToolkit().getImage("src/Imagens/logo_railbee_p3.png"));
        
        janela_cadastro_enderecos.setModal(true);
        janela_cadastro_enderecos.pack();
        janela_cadastro_enderecos.setLocationRelativeTo(null);
        janela_cadastro_enderecos.setIconImage(Toolkit.getDefaultToolkit().getImage("src/Imagens/logo_railbee_p3.png"));
        janela_cadastro_enderecos.getRootPane().setDefaultButton(botao_cadastra);

    }

    public void todosOsPaineisFalse() {
        painel_tabela.setVisible(false);
    }

    public boolean validaNumeroEstacoes(String numero_estacoes) {

        
        for(int i = 0; i < numero_estacoes.length(); i++) {
            if(numero_estacoes.charAt(i) < 48 || numero_estacoes.charAt(i) > 57) {
                return false;
            }
            else {
                return true;
            }            
        }
        return false;
    }
    
    public void setJanelaIPPorta(boolean status, int estacao) {
        if(status) {
            label_janela_ip_porta_titulo.setText("Digite o IP e a Porta do servidor "+(estacao+1));
            iterador++;
            janela_ip_porta.setVisible(true);
        }
        else {
            janela_ip_porta.setVisible(false);
            texto_janela_ip_porta_ip.setText("");
            texto_janela_ip_porta_porta.setText("");
        }
    }

    public void mostraTabela() {
        modelo_tabela = new TueModel(dados);
        tabela_tue.setModel(modelo_tabela);
        tabela = new GerenciaTabela(modelo_tabela, fila_tabela);
        label_logo_principal.setVisible(false);
        painel_tabela.setVisible(true);
    }


    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        janela_ip_porta = new javax.swing.JDialog();
        label_janela_ip_porta_logo = new javax.swing.JLabel();
        label_janela_ip_porta_titulo = new javax.swing.JLabel();
        label_janela_ip_porta_ip = new javax.swing.JLabel();
        texto_janela_ip_porta_ip = new javax.swing.JTextField();
        label_janela_ip_porta_porta = new javax.swing.JLabel();
        texto_janela_ip_porta_porta = new javax.swing.JTextField();
        barra_janela_ip_porta = new javax.swing.JToolBar();
        botao_janela_ip_porta_ok = new javax.swing.JButton();
        botao_janela_ip_porta_cancela = new javax.swing.JButton();
        janela_instrumentos = new javax.swing.JDialog();
        painel_janela_instrumentos_principal = new javax.swing.JPanel();
        painel_janela_instrumentos_titulo = new javax.swing.JPanel();
        label_janela_instrumentos_titulo = new javax.swing.JLabel();
        jLabel1 = new javax.swing.JLabel();
        painel_janela_instrumentos_secundario = new javax.swing.JPanel();
        painel_janela_instrumentos_pressao = new javax.swing.JPanel();
        painel_janela_instrumentos_instrumento = new javax.swing.JPanel();
        label_janela_instrumentos_pressao = new javax.swing.JLabel();
        texto_janela_instrumentos_pressao = new javax.swing.JTextField();
        label_janela_instrumentos_passageiros = new javax.swing.JLabel();
        texto_janela_instrumentos_passageiros = new javax.swing.JTextField();
        label_janela_instrumentos_tensao = new javax.swing.JLabel();
        texto_janela_instrumentos_tensao = new javax.swing.JTextField();
        painel_janela_instrumentos_graficos = new javax.swing.JPanel();
        barra_janela_instrumentos = new javax.swing.JSlider();
        painel_tabela_graficos = new javax.swing.JTabbedPane();
        painel_janela_instrumentos_grafico_velocidade = new javax.swing.JPanel();
        painel_janela_instrumentos_grafico_pressao = new javax.swing.JPanel();
        painel_janela_instrumentos_corrente = new javax.swing.JPanel();
        painel_janela_instrumentos_velocidade = new javax.swing.JPanel();
        progresso_janela_instrumentos_velocidade_maxima = new javax.swing.JProgressBar();
        progresso_janela_instrumentos_velocidade_real = new javax.swing.JProgressBar();
        texto_janela_instrumentos_velocidade_maxima = new javax.swing.JTextField();
        texto_janela_instrumentos_velocidade_real = new javax.swing.JTextField();
        label_janela_instrumentos_velocidade = new javax.swing.JLabel();
        label_janela_instrumentos_velocidade2 = new javax.swing.JLabel();
        label_janela_instrumentos_maxima = new javax.swing.JLabel();
        label_janela_instrumentos_real = new javax.swing.JLabel();
        janela_cadastro_enderecos = new javax.swing.JDialog();
        rotulo_endereco_trem1 = new javax.swing.JLabel();
        texto_endereco = new javax.swing.JTextField();
        botao_cadastra = new javax.swing.JButton();
        janela_consulta = new javax.swing.JDialog();
        painel_botoes = new javax.swing.JPanel();
        barra_botoes = new javax.swing.JToolBar();
        botao_conectar = new javax.swing.JButton();
        botao_cadastra_enderecos = new javax.swing.JButton();
        botao_cadastra_ips_servidores = new javax.swing.JButton();
        botao_consultas = new javax.swing.JButton();
        painel_principal = new javax.swing.JPanel();
        label_logo_principal = new javax.swing.JLabel();
        painel_tabela = new javax.swing.JPanel();
        scrol_painel_tabela = new javax.swing.JScrollPane();
        tabela_tue = new javax.swing.JTable();
        botao_tue1 = new javax.swing.JButton();
        botao_tue2 = new javax.swing.JButton();
        botao_tue3 = new javax.swing.JButton();
        botao_tue4 = new javax.swing.JButton();
        botao_tue5 = new javax.swing.JButton();
        botao_tue6 = new javax.swing.JButton();
        botao_tue7 = new javax.swing.JButton();
        botao_tue8 = new javax.swing.JButton();
        botao_tue9 = new javax.swing.JButton();
        botao_tue10 = new javax.swing.JButton();
        botao_tue11 = new javax.swing.JButton();
        botao_tue12 = new javax.swing.JButton();
        botao_tue13 = new javax.swing.JButton();
        botao_tue14 = new javax.swing.JButton();
        botao_tue15 = new javax.swing.JButton();
        botao_tue16 = new javax.swing.JButton();

        janela_ip_porta.setTitle("Conexão");
        janela_ip_porta.setResizable(false);
        janela_ip_porta.addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowClosing(java.awt.event.WindowEvent evt) {
                janela_ip_portaWindowClosing(evt);
            }
        });

        label_janela_ip_porta_logo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/MY NETWORK.png"))); // NOI18N

        label_janela_ip_porta_titulo.setText("Digite o IP e a Porta do servidor 1");

        label_janela_ip_porta_ip.setText("IP:");

        label_janela_ip_porta_porta.setText("Porta:");

        barra_janela_ip_porta.setFloatable(false);
        barra_janela_ip_porta.setRollover(true);

        botao_janela_ip_porta_ok.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/Crystal_Clear_app_clean.png"))); // NOI18N
        botao_janela_ip_porta_ok.setFocusable(false);
        botao_janela_ip_porta_ok.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        botao_janela_ip_porta_ok.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        botao_janela_ip_porta_ok.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botao_janela_ip_porta_okActionPerformed(evt);
            }
        });
        barra_janela_ip_porta.add(botao_janela_ip_porta_ok);

        botao_janela_ip_porta_cancela.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/Crystal_Clear_action_stop.png"))); // NOI18N
        botao_janela_ip_porta_cancela.setFocusable(false);
        botao_janela_ip_porta_cancela.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        botao_janela_ip_porta_cancela.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        botao_janela_ip_porta_cancela.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botao_janela_ip_porta_cancelaActionPerformed(evt);
            }
        });
        barra_janela_ip_porta.add(botao_janela_ip_porta_cancela);

        javax.swing.GroupLayout janela_ip_portaLayout = new javax.swing.GroupLayout(janela_ip_porta.getContentPane());
        janela_ip_porta.getContentPane().setLayout(janela_ip_portaLayout);
        janela_ip_portaLayout.setHorizontalGroup(
            janela_ip_portaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(janela_ip_portaLayout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(janela_ip_portaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, janela_ip_portaLayout.createSequentialGroup()
                        .addComponent(label_janela_ip_porta_titulo)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(label_janela_ip_porta_logo))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, janela_ip_portaLayout.createSequentialGroup()
                        .addComponent(label_janela_ip_porta_ip)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(texto_janela_ip_porta_ip, javax.swing.GroupLayout.PREFERRED_SIZE, 115, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(label_janela_ip_porta_porta)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(texto_janela_ip_porta_porta, javax.swing.GroupLayout.PREFERRED_SIZE, 86, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(barra_janela_ip_porta, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap())
        );
        janela_ip_portaLayout.setVerticalGroup(
            janela_ip_portaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(janela_ip_portaLayout.createSequentialGroup()
                .addGroup(janela_ip_portaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addGroup(janela_ip_portaLayout.createSequentialGroup()
                        .addGap(22, 22, 22)
                        .addComponent(label_janela_ip_porta_logo)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, janela_ip_portaLayout.createSequentialGroup()
                        .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addComponent(label_janela_ip_porta_titulo)
                        .addGap(30, 30, 30)))
                .addGroup(janela_ip_portaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(label_janela_ip_porta_ip)
                    .addComponent(texto_janela_ip_porta_ip, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(label_janela_ip_porta_porta)
                    .addComponent(texto_janela_ip_porta_porta, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(barra_janela_ip_porta, javax.swing.GroupLayout.PREFERRED_SIZE, 26, Short.MAX_VALUE)
                .addContainerGap())
        );

        janela_instrumentos.setTitle("RailBee - Painel de Instrumentos");
        janela_instrumentos.addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowClosing(java.awt.event.WindowEvent evt) {
                janela_instrumentosWindowClosing(evt);
            }
        });

        painel_janela_instrumentos_principal.setBackground(new java.awt.Color(255, 255, 255));

        painel_janela_instrumentos_titulo.setBackground(new java.awt.Color(255, 255, 255));

        label_janela_instrumentos_titulo.setFont(new java.awt.Font("Arial", 1, 18));
        label_janela_instrumentos_titulo.setForeground(new java.awt.Color(0, 51, 255));
        label_janela_instrumentos_titulo.setText("RailBee - Monitoramento");

        jLabel1.setFont(new java.awt.Font("Tahoma", 1, 14));
        jLabel1.setForeground(new java.awt.Color(51, 255, 51));
        jLabel1.setText("TUE 1 - Estação WEK");

        javax.swing.GroupLayout painel_janela_instrumentos_tituloLayout = new javax.swing.GroupLayout(painel_janela_instrumentos_titulo);
        painel_janela_instrumentos_titulo.setLayout(painel_janela_instrumentos_tituloLayout);
        painel_janela_instrumentos_tituloLayout.setHorizontalGroup(
            painel_janela_instrumentos_tituloLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(painel_janela_instrumentos_tituloLayout.createSequentialGroup()
                .addGroup(painel_janela_instrumentos_tituloLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(painel_janela_instrumentos_tituloLayout.createSequentialGroup()
                        .addGap(343, 343, 343)
                        .addComponent(label_janela_instrumentos_titulo))
                    .addGroup(painel_janela_instrumentos_tituloLayout.createSequentialGroup()
                        .addGap(372, 372, 372)
                        .addComponent(jLabel1)))
                .addContainerGap(344, Short.MAX_VALUE))
        );
        painel_janela_instrumentos_tituloLayout.setVerticalGroup(
            painel_janela_instrumentos_tituloLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(painel_janela_instrumentos_tituloLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(label_janela_instrumentos_titulo)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jLabel1)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        painel_janela_instrumentos_secundario.setBackground(new java.awt.Color(255, 255, 255));
        painel_janela_instrumentos_secundario.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Arial", 1, 18), new java.awt.Color(51, 255, 0))); // NOI18N

        painel_janela_instrumentos_pressao.setBackground(new java.awt.Color(255, 255, 255));
        painel_janela_instrumentos_pressao.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Pressão e Tensão", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Arial", 0, 14), new java.awt.Color(0, 51, 255))); // NOI18N

        painel_janela_instrumentos_instrumento.setBackground(new java.awt.Color(255, 255, 255));
        painel_janela_instrumentos_instrumento.setLayout(new java.awt.GridLayout(1, 0));

        label_janela_instrumentos_pressao.setFont(new java.awt.Font("Tahoma", 0, 14));
        label_janela_instrumentos_pressao.setText("Pressão - psi");

        texto_janela_instrumentos_pressao.setBackground(new java.awt.Color(204, 204, 255));
        texto_janela_instrumentos_pressao.setEditable(false);
        texto_janela_instrumentos_pressao.setFont(new java.awt.Font("Arial", 1, 18));
        texto_janela_instrumentos_pressao.setHorizontalAlignment(javax.swing.JTextField.CENTER);

        label_janela_instrumentos_passageiros.setFont(new java.awt.Font("Tahoma", 0, 14));
        label_janela_instrumentos_passageiros.setText("Nº Passageiros");

        texto_janela_instrumentos_passageiros.setBackground(new java.awt.Color(204, 204, 255));
        texto_janela_instrumentos_passageiros.setEditable(false);
        texto_janela_instrumentos_passageiros.setFont(new java.awt.Font("Arial", 1, 18));
        texto_janela_instrumentos_passageiros.setHorizontalAlignment(javax.swing.JTextField.CENTER);

        label_janela_instrumentos_tensao.setFont(new java.awt.Font("Tahoma", 0, 14));
        label_janela_instrumentos_tensao.setText("Tensão - KV");

        texto_janela_instrumentos_tensao.setBackground(new java.awt.Color(204, 204, 255));
        texto_janela_instrumentos_tensao.setEditable(false);
        texto_janela_instrumentos_tensao.setFont(new java.awt.Font("Arial", 1, 18));
        texto_janela_instrumentos_tensao.setHorizontalAlignment(javax.swing.JTextField.CENTER);

        javax.swing.GroupLayout painel_janela_instrumentos_pressaoLayout = new javax.swing.GroupLayout(painel_janela_instrumentos_pressao);
        painel_janela_instrumentos_pressao.setLayout(painel_janela_instrumentos_pressaoLayout);
        painel_janela_instrumentos_pressaoLayout.setHorizontalGroup(
            painel_janela_instrumentos_pressaoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(painel_janela_instrumentos_pressaoLayout.createSequentialGroup()
                .addComponent(painel_janela_instrumentos_instrumento, javax.swing.GroupLayout.PREFERRED_SIZE, 239, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(painel_janela_instrumentos_pressaoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(texto_janela_instrumentos_passageiros, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 123, Short.MAX_VALUE)
                    .addComponent(texto_janela_instrumentos_pressao, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 123, Short.MAX_VALUE)
                    .addComponent(label_janela_instrumentos_pressao, javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(label_janela_instrumentos_passageiros, javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(label_janela_instrumentos_tensao, javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(texto_janela_instrumentos_tensao, javax.swing.GroupLayout.PREFERRED_SIZE, 123, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap())
        );
        painel_janela_instrumentos_pressaoLayout.setVerticalGroup(
            painel_janela_instrumentos_pressaoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(painel_janela_instrumentos_pressaoLayout.createSequentialGroup()
                .addGroup(painel_janela_instrumentos_pressaoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(painel_janela_instrumentos_instrumento, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 248, Short.MAX_VALUE)
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, painel_janela_instrumentos_pressaoLayout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(label_janela_instrumentos_pressao)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(texto_janela_instrumentos_pressao, javax.swing.GroupLayout.PREFERRED_SIZE, 48, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(label_janela_instrumentos_passageiros)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(texto_janela_instrumentos_passageiros, javax.swing.GroupLayout.PREFERRED_SIZE, 53, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(label_janela_instrumentos_tensao)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(texto_janela_instrumentos_tensao, javax.swing.GroupLayout.PREFERRED_SIZE, 55, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap(22, javax.swing.GroupLayout.PREFERRED_SIZE))
        );

        painel_janela_instrumentos_graficos.setBackground(new java.awt.Color(255, 255, 255));
        painel_janela_instrumentos_graficos.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Gráficos", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Arial", 0, 14), new java.awt.Color(0, 51, 255))); // NOI18N

        barra_janela_instrumentos.setBackground(new java.awt.Color(255, 255, 255));
        barra_janela_instrumentos.setMaximum(35);
        barra_janela_instrumentos.setValue(0);

        painel_janela_instrumentos_grafico_velocidade.setBackground(new java.awt.Color(255, 255, 255));
        painel_janela_instrumentos_grafico_velocidade.setLayout(new java.awt.GridLayout(1, 0));
        painel_tabela_graficos.addTab("Velocidade", painel_janela_instrumentos_grafico_velocidade);

        painel_janela_instrumentos_grafico_pressao.setBackground(new java.awt.Color(255, 255, 255));
        painel_janela_instrumentos_grafico_pressao.setLayout(new java.awt.GridLayout(1, 0));
        painel_tabela_graficos.addTab("Pressão", painel_janela_instrumentos_grafico_pressao);

        javax.swing.GroupLayout painel_janela_instrumentos_graficosLayout = new javax.swing.GroupLayout(painel_janela_instrumentos_graficos);
        painel_janela_instrumentos_graficos.setLayout(painel_janela_instrumentos_graficosLayout);
        painel_janela_instrumentos_graficosLayout.setHorizontalGroup(
            painel_janela_instrumentos_graficosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(painel_janela_instrumentos_graficosLayout.createSequentialGroup()
                .addGap(10, 10, 10)
                .addComponent(barra_janela_instrumentos, javax.swing.GroupLayout.DEFAULT_SIZE, 461, Short.MAX_VALUE))
            .addGroup(painel_janela_instrumentos_graficosLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(painel_tabela_graficos, javax.swing.GroupLayout.DEFAULT_SIZE, 451, Short.MAX_VALUE)
                .addGap(10, 10, 10))
        );
        painel_janela_instrumentos_graficosLayout.setVerticalGroup(
            painel_janela_instrumentos_graficosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, painel_janela_instrumentos_graficosLayout.createSequentialGroup()
                .addComponent(painel_tabela_graficos, javax.swing.GroupLayout.DEFAULT_SIZE, 328, Short.MAX_VALUE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(barra_janela_instrumentos, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );

        painel_janela_instrumentos_corrente.setBackground(new java.awt.Color(255, 255, 255));
        painel_janela_instrumentos_corrente.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Corrente de Armadura", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Arial", 0, 14), new java.awt.Color(0, 51, 255))); // NOI18N
        painel_janela_instrumentos_corrente.setLayout(new java.awt.GridLayout(1, 0));

        painel_janela_instrumentos_velocidade.setBackground(new java.awt.Color(255, 255, 255));
        painel_janela_instrumentos_velocidade.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Velocidade", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Arial", 0, 14), new java.awt.Color(0, 51, 255))); // NOI18N

        progresso_janela_instrumentos_velocidade_maxima.setString("");

        progresso_janela_instrumentos_velocidade_real.setString("");

        texto_janela_instrumentos_velocidade_maxima.setBackground(new java.awt.Color(204, 204, 255));
        texto_janela_instrumentos_velocidade_maxima.setEditable(false);
        texto_janela_instrumentos_velocidade_maxima.setFont(new java.awt.Font("Arial", 1, 14));
        texto_janela_instrumentos_velocidade_maxima.setHorizontalAlignment(javax.swing.JTextField.CENTER);

        texto_janela_instrumentos_velocidade_real.setBackground(new java.awt.Color(204, 204, 255));
        texto_janela_instrumentos_velocidade_real.setEditable(false);
        texto_janela_instrumentos_velocidade_real.setFont(new java.awt.Font("Arial", 1, 14));
        texto_janela_instrumentos_velocidade_real.setHorizontalAlignment(javax.swing.JTextField.CENTER);

        label_janela_instrumentos_velocidade.setText("Velocidade");

        label_janela_instrumentos_velocidade2.setText("Velocidade");

        label_janela_instrumentos_maxima.setText("Máxima - Km/h");

        label_janela_instrumentos_real.setText("Real - Km/h");

        javax.swing.GroupLayout painel_janela_instrumentos_velocidadeLayout = new javax.swing.GroupLayout(painel_janela_instrumentos_velocidade);
        painel_janela_instrumentos_velocidade.setLayout(painel_janela_instrumentos_velocidadeLayout);
        painel_janela_instrumentos_velocidadeLayout.setHorizontalGroup(
            painel_janela_instrumentos_velocidadeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, painel_janela_instrumentos_velocidadeLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(painel_janela_instrumentos_velocidadeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(label_janela_instrumentos_velocidade)
                    .addComponent(label_janela_instrumentos_maxima)
                    .addComponent(label_janela_instrumentos_velocidade2)
                    .addComponent(label_janela_instrumentos_real))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(painel_janela_instrumentos_velocidadeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(texto_janela_instrumentos_velocidade_real, javax.swing.GroupLayout.DEFAULT_SIZE, 74, Short.MAX_VALUE)
                    .addComponent(texto_janela_instrumentos_velocidade_maxima, javax.swing.GroupLayout.DEFAULT_SIZE, 74, Short.MAX_VALUE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(painel_janela_instrumentos_velocidadeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(progresso_janela_instrumentos_velocidade_real, javax.swing.GroupLayout.DEFAULT_SIZE, 297, Short.MAX_VALUE)
                    .addComponent(progresso_janela_instrumentos_velocidade_maxima, javax.swing.GroupLayout.DEFAULT_SIZE, 297, Short.MAX_VALUE))
                .addContainerGap())
        );
        painel_janela_instrumentos_velocidadeLayout.setVerticalGroup(
            painel_janela_instrumentos_velocidadeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(painel_janela_instrumentos_velocidadeLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(painel_janela_instrumentos_velocidadeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(texto_janela_instrumentos_velocidade_maxima, javax.swing.GroupLayout.PREFERRED_SIZE, 34, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(progresso_janela_instrumentos_velocidade_maxima, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGroup(painel_janela_instrumentos_velocidadeLayout.createSequentialGroup()
                        .addComponent(label_janela_instrumentos_velocidade)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addComponent(label_janela_instrumentos_maxima)))
                .addGap(26, 26, 26)
                .addGroup(painel_janela_instrumentos_velocidadeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(progresso_janela_instrumentos_velocidade_real, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGroup(painel_janela_instrumentos_velocidadeLayout.createSequentialGroup()
                        .addComponent(label_janela_instrumentos_velocidade2)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addComponent(label_janela_instrumentos_real))
                    .addComponent(texto_janela_instrumentos_velocidade_real, javax.swing.GroupLayout.DEFAULT_SIZE, 34, Short.MAX_VALUE))
                .addGap(23, 23, 23))
        );

        javax.swing.GroupLayout painel_janela_instrumentos_secundarioLayout = new javax.swing.GroupLayout(painel_janela_instrumentos_secundario);
        painel_janela_instrumentos_secundario.setLayout(painel_janela_instrumentos_secundarioLayout);
        painel_janela_instrumentos_secundarioLayout.setHorizontalGroup(
            painel_janela_instrumentos_secundarioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(painel_janela_instrumentos_secundarioLayout.createSequentialGroup()
                .addGroup(painel_janela_instrumentos_secundarioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(painel_janela_instrumentos_corrente, javax.swing.GroupLayout.DEFAULT_SIZE, 394, Short.MAX_VALUE)
                    .addComponent(painel_janela_instrumentos_pressao, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(painel_janela_instrumentos_secundarioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(painel_janela_instrumentos_velocidade, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(painel_janela_instrumentos_graficos, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
        );
        painel_janela_instrumentos_secundarioLayout.setVerticalGroup(
            painel_janela_instrumentos_secundarioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, painel_janela_instrumentos_secundarioLayout.createSequentialGroup()
                .addComponent(painel_janela_instrumentos_graficos, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(painel_janela_instrumentos_velocidade, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
            .addGroup(painel_janela_instrumentos_secundarioLayout.createSequentialGroup()
                .addComponent(painel_janela_instrumentos_pressao, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(painel_janela_instrumentos_corrente, javax.swing.GroupLayout.DEFAULT_SIZE, 260, Short.MAX_VALUE))
        );

        javax.swing.GroupLayout painel_janela_instrumentos_principalLayout = new javax.swing.GroupLayout(painel_janela_instrumentos_principal);
        painel_janela_instrumentos_principal.setLayout(painel_janela_instrumentos_principalLayout);
        painel_janela_instrumentos_principalLayout.setHorizontalGroup(
            painel_janela_instrumentos_principalLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(painel_janela_instrumentos_secundario, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
            .addComponent(painel_janela_instrumentos_titulo, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );
        painel_janela_instrumentos_principalLayout.setVerticalGroup(
            painel_janela_instrumentos_principalLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(painel_janela_instrumentos_principalLayout.createSequentialGroup()
                .addComponent(painel_janela_instrumentos_titulo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(painel_janela_instrumentos_secundario, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        javax.swing.GroupLayout janela_instrumentosLayout = new javax.swing.GroupLayout(janela_instrumentos.getContentPane());
        janela_instrumentos.getContentPane().setLayout(janela_instrumentosLayout);
        janela_instrumentosLayout.setHorizontalGroup(
            janela_instrumentosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(painel_janela_instrumentos_principal, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );
        janela_instrumentosLayout.setVerticalGroup(
            janela_instrumentosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(painel_janela_instrumentos_principal, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );

        rotulo_endereco_trem1.setText("Trem 1:");

        botao_cadastra.setText("Cadastra");
        botao_cadastra.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botao_cadastraActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout janela_cadastro_enderecosLayout = new javax.swing.GroupLayout(janela_cadastro_enderecos.getContentPane());
        janela_cadastro_enderecos.getContentPane().setLayout(janela_cadastro_enderecosLayout);
        janela_cadastro_enderecosLayout.setHorizontalGroup(
            janela_cadastro_enderecosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(janela_cadastro_enderecosLayout.createSequentialGroup()
                .addGap(31, 31, 31)
                .addComponent(rotulo_endereco_trem1)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(texto_endereco, javax.swing.GroupLayout.PREFERRED_SIZE, 138, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(botao_cadastra)
                .addContainerGap(34, Short.MAX_VALUE))
        );
        janela_cadastro_enderecosLayout.setVerticalGroup(
            janela_cadastro_enderecosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(janela_cadastro_enderecosLayout.createSequentialGroup()
                .addGap(51, 51, 51)
                .addGroup(janela_cadastro_enderecosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(rotulo_endereco_trem1)
                    .addComponent(texto_endereco, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(botao_cadastra))
                .addContainerGap(46, Short.MAX_VALUE))
        );

        javax.swing.GroupLayout janela_consultaLayout = new javax.swing.GroupLayout(janela_consulta.getContentPane());
        janela_consulta.getContentPane().setLayout(janela_consultaLayout);
        janela_consultaLayout.setHorizontalGroup(
            janela_consultaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 800, Short.MAX_VALUE)
        );
        janela_consultaLayout.setVerticalGroup(
            janela_consultaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 600, Short.MAX_VALUE)
        );

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("RailBee - Sistema de Supervisão de Malhas Metroferroviárias");
        setResizable(false);
        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowClosing(java.awt.event.WindowEvent evt) {
                formWindowClosing(evt);
            }
        });

        barra_botoes.setFloatable(false);
        barra_botoes.setRollover(true);

        botao_conectar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/C_desconectado.png"))); // NOI18N
        botao_conectar.setToolTipText("Conectar/Desconectar");
        botao_conectar.setFocusable(false);
        botao_conectar.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        botao_conectar.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        botao_conectar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botao_conectarActionPerformed(evt);
            }
        });
        barra_botoes.add(botao_conectar);

        botao_cadastra_enderecos.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/AQUA ICONS SYSTEM ALERT NOTE.png"))); // NOI18N
        botao_cadastra_enderecos.setFocusable(false);
        botao_cadastra_enderecos.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        botao_cadastra_enderecos.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        botao_cadastra_enderecos.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botao_cadastra_enderecosActionPerformed(evt);
            }
        });
        barra_botoes.add(botao_cadastra_enderecos);

        botao_cadastra_ips_servidores.setText("jButton1");
        botao_cadastra_ips_servidores.setFocusable(false);
        botao_cadastra_ips_servidores.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        botao_cadastra_ips_servidores.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        barra_botoes.add(botao_cadastra_ips_servidores);

        botao_consultas.setText("jButton2");
        botao_consultas.setFocusable(false);
        botao_consultas.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        botao_consultas.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        barra_botoes.add(botao_consultas);

        javax.swing.GroupLayout painel_botoesLayout = new javax.swing.GroupLayout(painel_botoes);
        painel_botoes.setLayout(painel_botoesLayout);
        painel_botoesLayout.setHorizontalGroup(
            painel_botoesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(painel_botoesLayout.createSequentialGroup()
                .addComponent(barra_botoes, javax.swing.GroupLayout.PREFERRED_SIZE, 714, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(290, Short.MAX_VALUE))
        );
        painel_botoesLayout.setVerticalGroup(
            painel_botoesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(barra_botoes, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );

        painel_principal.setBackground(new java.awt.Color(255, 255, 255));
        painel_principal.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        painel_principal.setPreferredSize(new java.awt.Dimension(800, 600));

        label_logo_principal.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/logo_railbee.png"))); // NOI18N

        painel_tabela.setBackground(new java.awt.Color(255, 255, 255));

        tabela_tue.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {

            }
        ));
        tabela_tue.setRowHeight(25);
        scrol_painel_tabela.setViewportView(tabela_tue);

        botao_tue1.setText("TUE 1");
        botao_tue1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botao_tue1ActionPerformed(evt);
            }
        });

        botao_tue2.setText("TUE 2");
        botao_tue2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botao_tue2ActionPerformed(evt);
            }
        });

        botao_tue3.setText("TUE 3");

        botao_tue4.setText("TUE 4");

        botao_tue5.setText("TUE 5");

        botao_tue6.setText("TUE 6");

        botao_tue7.setText("TUE 7");

        botao_tue8.setText("TUE 8");

        botao_tue9.setText("TUE 9");

        botao_tue10.setText("TUE 10");

        botao_tue11.setText("TUE 11");

        botao_tue12.setText("TUE 12");

        botao_tue13.setText("TUE 13");

        botao_tue14.setText("TUE 14");

        botao_tue15.setText("TUE 15");

        botao_tue16.setText("TUE 16");

        javax.swing.GroupLayout painel_tabelaLayout = new javax.swing.GroupLayout(painel_tabela);
        painel_tabela.setLayout(painel_tabelaLayout);
        painel_tabelaLayout.setHorizontalGroup(
            painel_tabelaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(painel_tabelaLayout.createSequentialGroup()
                .addGap(102, 102, 102)
                .addGroup(painel_tabelaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(painel_tabelaLayout.createSequentialGroup()
                        .addGap(3, 3, 3)
                        .addComponent(botao_tue1))
                    .addGroup(painel_tabelaLayout.createSequentialGroup()
                        .addGap(3, 3, 3)
                        .addComponent(botao_tue2))
                    .addGroup(painel_tabelaLayout.createSequentialGroup()
                        .addGap(3, 3, 3)
                        .addComponent(botao_tue3))
                    .addGroup(painel_tabelaLayout.createSequentialGroup()
                        .addGap(3, 3, 3)
                        .addComponent(botao_tue4))
                    .addGroup(painel_tabelaLayout.createSequentialGroup()
                        .addGap(3, 3, 3)
                        .addComponent(botao_tue5))
                    .addGroup(painel_tabelaLayout.createSequentialGroup()
                        .addGap(3, 3, 3)
                        .addComponent(botao_tue6))
                    .addGroup(painel_tabelaLayout.createSequentialGroup()
                        .addGap(3, 3, 3)
                        .addComponent(botao_tue7))
                    .addGroup(painel_tabelaLayout.createSequentialGroup()
                        .addGap(3, 3, 3)
                        .addGroup(painel_tabelaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(botao_tue9)
                            .addComponent(botao_tue8)))
                    .addComponent(botao_tue10)
                    .addComponent(botao_tue11)
                    .addComponent(botao_tue12)
                    .addComponent(botao_tue13)
                    .addComponent(botao_tue14)
                    .addComponent(botao_tue15)
                    .addComponent(botao_tue16))
                .addGap(8, 8, 8)
                .addComponent(scrol_painel_tabela, javax.swing.GroupLayout.PREFERRED_SIZE, 652, javax.swing.GroupLayout.PREFERRED_SIZE))
        );
        painel_tabelaLayout.setVerticalGroup(
            painel_tabelaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(painel_tabelaLayout.createSequentialGroup()
                .addGap(99, 99, 99)
                .addComponent(botao_tue1)
                .addGap(3, 3, 3)
                .addComponent(botao_tue2)
                .addGap(3, 3, 3)
                .addComponent(botao_tue3)
                .addGap(3, 3, 3)
                .addComponent(botao_tue4)
                .addGap(2, 2, 2)
                .addComponent(botao_tue5)
                .addGap(3, 3, 3)
                .addComponent(botao_tue6)
                .addGap(2, 2, 2)
                .addComponent(botao_tue7)
                .addGap(1, 1, 1)
                .addGroup(painel_tabelaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(painel_tabelaLayout.createSequentialGroup()
                        .addGap(22, 22, 22)
                        .addComponent(botao_tue9))
                    .addComponent(botao_tue8))
                .addGap(2, 2, 2)
                .addComponent(botao_tue10)
                .addGap(2, 2, 2)
                .addComponent(botao_tue11)
                .addGap(2, 2, 2)
                .addComponent(botao_tue12)
                .addGap(2, 2, 2)
                .addComponent(botao_tue13)
                .addGap(2, 2, 2)
                .addComponent(botao_tue14)
                .addGap(2, 2, 2)
                .addComponent(botao_tue15)
                .addGap(2, 2, 2)
                .addComponent(botao_tue16))
            .addGroup(painel_tabelaLayout.createSequentialGroup()
                .addGap(87, 87, 87)
                .addComponent(scrol_painel_tabela, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
        );

        javax.swing.GroupLayout painel_principalLayout = new javax.swing.GroupLayout(painel_principal);
        painel_principal.setLayout(painel_principalLayout);
        painel_principalLayout.setHorizontalGroup(
            painel_principalLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(painel_principalLayout.createSequentialGroup()
                .addGap(253, 253, 253)
                .addComponent(label_logo_principal))
            .addComponent(painel_tabela, javax.swing.GroupLayout.PREFERRED_SIZE, 1000, javax.swing.GroupLayout.PREFERRED_SIZE)
        );
        painel_principalLayout.setVerticalGroup(
            painel_principalLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(painel_principalLayout.createSequentialGroup()
                .addGap(100, 100, 100)
                .addComponent(label_logo_principal))
            .addComponent(painel_tabela, javax.swing.GroupLayout.PREFERRED_SIZE, 600, javax.swing.GroupLayout.PREFERRED_SIZE)
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(painel_botoes, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
            .addComponent(painel_principal, javax.swing.GroupLayout.DEFAULT_SIZE, 1004, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(painel_botoes, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(painel_principal, javax.swing.GroupLayout.DEFAULT_SIZE, 604, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>                        

    private void botao_conectarActionPerformed(java.awt.event.ActionEvent evt) {                                               
      String numero_estacoes_temp = "";

      numero_estacoes_temp = JOptionPane.showInputDialog(this, "A quantas estações você deseja se conectar?", "Estacões", JOptionPane.QUESTION_MESSAGE);

      if(!numero_estacoes_temp.equals("")) {
          if(validaNumeroEstacoes(numero_estacoes_temp)) {
              numero_estacoes = Integer.parseInt(numero_estacoes_temp);
              ips = new String[numero_estacoes];
              portas = new int[numero_estacoes];
              numero_estacoes_aux = numero_estacoes;
              setJanelaIPPorta(true, iterador);
          }
          else {
              JOptionPane.showMessageDialog(this, "Digite um valor válido", "Erro", JOptionPane.ERROR_MESSAGE);
          }
      }
    }                                              

    private void botao_janela_ip_porta_cancelaActionPerformed(java.awt.event.ActionEvent evt) {                                                              
        cancela_ips_portas = true;
    }                                                             

    private void janela_ip_portaWindowClosing(java.awt.event.WindowEvent evt) {                                              
        cancela_ips_portas = true;
    }                                             

    private void botao_janela_ip_porta_okActionPerformed(java.awt.event.ActionEvent evt) {                                                         
        ips[numero_estacoes_aux - 1] =  texto_janela_ip_porta_ip.getText();
        portas[numero_estacoes_aux - 1] = Integer.parseInt(texto_janela_ip_porta_porta.getText());
        setJanelaIPPorta(false, 0);
        numero_estacoes_aux--;
        if(numero_estacoes_aux > 0) {
            setJanelaIPPorta(true, iterador);
        }
        else {
            conexoes = new GerenciaConexao(ips, portas, fila_tabela, fila_instrumentos, fila_bd, true, true, true, lista_enderecos);
            medidas_banco = new MedidasBancoDeDados(fila_bd, conexao, lista_enderecos.getEnderecos());
            ImageIcon icone = new ImageIcon("src/Imagens/C_conectado.png");
            botao_conectar.setIcon(icone);
            mostraTabela();
        }
    }                                                        

    private void botao_tue1ActionPerformed(java.awt.event.ActionEvent evt) {                                           
        gerente_instrumentos = new GerenciaInstrumentos(lista_enderecos.getEndereco(0), fila_instrumentos, fila_grafico, fila_amperimetro, fila_pressao,grafico_velocidade, amperimetro, instrumento_pressao, texto_janela_instrumentos_pressao, texto_janela_instrumentos_tensao, texto_janela_instrumentos_passageiros, barra_janela_instrumentos, progresso_janela_instrumentos_velocidade_real, texto_janela_instrumentos_velocidade_real);
        janela_instrumentos.setVisible(true);
    }                                          

    private void botao_cadastra_enderecosActionPerformed(java.awt.event.ActionEvent evt) {                                                         
        janela_cadastro_enderecos.setVisible(true);
    }                                                        

    private void botao_cadastraActionPerformed(java.awt.event.ActionEvent evt) {                                               
        
        try {
            TremZigbeeDao tremZigbee = TremZigbeeDaoFactory.create(conexao);
            TremZigbee trem = new TremZigbee();
            trem.setEnderecoxbee(texto_endereco.getText());
            trem.setTrem("trem01");
            tremZigbee.insert(trem);
        }
        catch (TremZigbeeDaoException ex) {
            Logger.getLogger(Interface.class.getName()).log(Level.SEVERE, null, ex);
        }
    }                                              

    private void formWindowClosing(java.awt.event.WindowEvent evt) {                                   
        try {
            conect.fecharConexao();
        } catch (SQLException ex) {
            Logger.getLogger(Interface.class.getName()).log(Level.SEVERE, null, ex);
        }
    }                                  

    private void botao_tue2ActionPerformed(java.awt.event.ActionEvent evt) {                                           
       gerente_instrumentos = new GerenciaInstrumentos(lista_enderecos.getEndereco(1), fila_instrumentos, fila_grafico, fila_amperimetro, fila_pressao,grafico_velocidade, amperimetro, instrumento_pressao, texto_janela_instrumentos_pressao, texto_janela_instrumentos_tensao, texto_janela_instrumentos_passageiros, barra_janela_instrumentos, progresso_janela_instrumentos_velocidade_real, texto_janela_instrumentos_velocidade_real);
       janela_instrumentos.setVisible(true);
    }                                          

    private void janela_instrumentosWindowClosing(java.awt.event.WindowEvent evt) {                                                  
        gerente_instrumentos.paraInstrumentos();
    }                                                 

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) throws UnsupportedLookAndFeelException {
        try {
            UIManager.setLookAndFeel(new WindowsLookAndFeel());
            java.awt.EventQueue.invokeLater(new

                  Runnable() {

                     public void run() {
                    new Interface().setVisible(true);
                }
            });
        } catch (UnsupportedLookAndFeelException ex) {
            Logger.getLogger(Interface.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    // Variables declaration - do not modify                     
    private javax.swing.JToolBar barra_botoes;
    private javax.swing.JSlider barra_janela_instrumentos;
    private javax.swing.JToolBar barra_janela_ip_porta;
    private javax.swing.JButton botao_cadastra;
    private javax.swing.JButton botao_cadastra_enderecos;
    private javax.swing.JButton botao_cadastra_ips_servidores;
    private javax.swing.JButton botao_conectar;
    private javax.swing.JButton botao_consultas;
    private javax.swing.JButton botao_janela_ip_porta_cancela;
    private javax.swing.JButton botao_janela_ip_porta_ok;
    private javax.swing.JButton botao_tue1;
    private javax.swing.JButton botao_tue10;
    private javax.swing.JButton botao_tue11;
    private javax.swing.JButton botao_tue12;
    private javax.swing.JButton botao_tue13;
    private javax.swing.JButton botao_tue14;
    private javax.swing.JButton botao_tue15;
    private javax.swing.JButton botao_tue16;
    private javax.swing.JButton botao_tue2;
    private javax.swing.JButton botao_tue3;
    private javax.swing.JButton botao_tue4;
    private javax.swing.JButton botao_tue5;
    private javax.swing.JButton botao_tue6;
    private javax.swing.JButton botao_tue7;
    private javax.swing.JButton botao_tue8;
    private javax.swing.JButton botao_tue9;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JDialog janela_cadastro_enderecos;
    private javax.swing.JDialog janela_consulta;
    private javax.swing.JDialog janela_instrumentos;
    private javax.swing.JDialog janela_ip_porta;
    private javax.swing.JLabel label_janela_instrumentos_maxima;
    private javax.swing.JLabel label_janela_instrumentos_passageiros;
    private javax.swing.JLabel label_janela_instrumentos_pressao;
    private javax.swing.JLabel label_janela_instrumentos_real;
    private javax.swing.JLabel label_janela_instrumentos_tensao;
    private javax.swing.JLabel label_janela_instrumentos_titulo;
    private javax.swing.JLabel label_janela_instrumentos_velocidade;
    private javax.swing.JLabel label_janela_instrumentos_velocidade2;
    private javax.swing.JLabel label_janela_ip_porta_ip;
    private javax.swing.JLabel label_janela_ip_porta_logo;
    private javax.swing.JLabel label_janela_ip_porta_porta;
    private javax.swing.JLabel label_janela_ip_porta_titulo;
    private javax.swing.JLabel label_logo_principal;
    private javax.swing.JPanel painel_botoes;
    private javax.swing.JPanel painel_janela_instrumentos_corrente;
    private javax.swing.JPanel painel_janela_instrumentos_grafico_pressao;
    private javax.swing.JPanel painel_janela_instrumentos_grafico_velocidade;
    private javax.swing.JPanel painel_janela_instrumentos_graficos;
    private javax.swing.JPanel painel_janela_instrumentos_instrumento;
    private javax.swing.JPanel painel_janela_instrumentos_pressao;
    private javax.swing.JPanel painel_janela_instrumentos_principal;
    private javax.swing.JPanel painel_janela_instrumentos_secundario;
    private javax.swing.JPanel painel_janela_instrumentos_titulo;
    private javax.swing.JPanel painel_janela_instrumentos_velocidade;
    private javax.swing.JPanel painel_principal;
    private javax.swing.JPanel painel_tabela;
    private javax.swing.JTabbedPane painel_tabela_graficos;
    private javax.swing.JProgressBar progresso_janela_instrumentos_velocidade_maxima;
    private javax.swing.JProgressBar progresso_janela_instrumentos_velocidade_real;
    private javax.swing.JLabel rotulo_endereco_trem1;
    private javax.swing.JScrollPane scrol_painel_tabela;
    private javax.swing.JTable tabela_tue;
    private javax.swing.JTextField texto_endereco;
    private javax.swing.JTextField texto_janela_instrumentos_passageiros;
    private javax.swing.JTextField texto_janela_instrumentos_pressao;
    private javax.swing.JTextField texto_janela_instrumentos_tensao;
    private javax.swing.JTextField texto_janela_instrumentos_velocidade_maxima;
    private javax.swing.JTextField texto_janela_instrumentos_velocidade_real;
    private javax.swing.JTextField texto_janela_ip_porta_ip;
    private javax.swing.JTextField texto_janela_ip_porta_porta;
    // End of variables declaration                   

}
